home *** CD-ROM | disk | FTP | other *** search
/ Animation How-To / Animation How-to CD.iso / PLY / CHAPTER2 / BOLITA / FLAP.BAS < prev    next >
BASIC Source File  |  1994-01-01  |  2KB  |  67 lines

  1. ' FLAP.BAS
  2.  
  3. SCREEN 12
  4. WINDOW (-16, -12)-(16, 12)
  5.  
  6. pi = 3.14159
  7. rad = pi / 180
  8. frame = -16
  9.  
  10. 'Show the waveform
  11.  
  12. FOR angle = -360 TO 360 STEP 1
  13.     x = angle / 30
  14.     w = 10 * COS(angle * rad)
  15.     z = EXP(1.6 * (1 + COS((angle - 80) * rad)))
  16.     y = w + z
  17.     IF angle = -360 THEN PSET (x, y / 5) ELSE LINE -(x, y / 5)
  18. NEXT angle
  19.  
  20. DO WHILE INKEY$ = "": LOOP
  21. CLS
  22.  
  23. ' A reference box
  24. LINE (-4, 0)-(4, 8), , B
  25.  
  26. DO WHILE INKEY$ = ""      ' go until a key is pressed
  27.   t = t + 10                ' time step size
  28.  
  29. '===================The Assymetric Waveform====================
  30.     w = 10 * COS(t * rad)                    ' periodic motion
  31.     z = EXP(1.6 * (1 + COS((t - 80) * rad))) ' periodic hump
  32.  
  33.     phz = w + z                              ' add 'em together
  34.     ang = 45 + phz                           ' shift the phase
  35. '===============================================================
  36.     x = 8 * COS(ang * rad)
  37.     y = 8 * SIN(ang * rad) + 2
  38.     fx = 0
  39.     fy = -4 * SIN(ang * rad) + 4
  40.  
  41.    ' Undraw
  42.     LINE (ofx, ofy)-(ox, oy), 0
  43.     LINE (ofx, ofy)-(-ox, oy), 0
  44.     CIRCLE (ox, oy), 1, 0
  45.     CIRCLE (-ox, oy), 1, 0
  46.     CIRCLE (ofx, ofy - .5), .5, 0
  47.  
  48.    ' Draw
  49.     LINE (fx, fy)-(x, y), 15     ' draw the current screen
  50.     LINE (fx, fy)-(-x, y), 15    ' draw the current screen
  51.     CIRCLE (x, y), 1, 15         ' (draw in color 15 = white)
  52.     CIRCLE (-x, y), 1, 15        ' (draw in color 15 = white)
  53.     CIRCLE (fx, fy - .5), .5, 15
  54.  
  55.    ' Save
  56.     ox = x           ' save the current screen
  57.     oy = y           ' variables (ox = old-x; oy = old-y)
  58.     ofx = fx
  59.     ofy = fy
  60.     d = ((fx - x) ^ 2 + (fy - y) ^ 2) ^ .5
  61.     PSET (frame, d), 15
  62.     PSET (frame, y), 14
  63.     frame = frame + .01
  64.     FOR w = 1 TO 1000: NEXT w
  65. LOOP
  66.  
  67.